﻿Перем юТест;

Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
	
	юТест = ЮнитТестирование;
	
	Си = Новый СистемнаяИнформация;
	ЭтоWindows = Найти(Си.ВерсияОС, "Windows") > 0;
	
	ВсеТесты = Новый Массив;
	
	Если ЭтоWindows Тогда
		ВсеТесты.Добавить("ТестДолженПроверитьЧтоФайлБезБОМСчитываетсяКакANSI_Windows");
	Иначе
		ВсеТесты.Добавить("ТестДолженПроверитьЧтоФайлБезБОМСчитываетсяКакUTF_Linux");
	КонецЕсли;
	
	Возврат ВсеТесты;
	
КонецФункции

Процедура ПослеЗапускаТеста() Экспорт
	юТест.УдалитьВременныеФайлы();
КонецПроцедуры

Функция ЗаписатьФайлБезБОМ(Кодировка)
	Файл = юТест.ИмяВременногоФайла();
	
	Запись = Новый ЗаписьТекста(Файл, Кодировка);
	Запись.Записать("Привет");
	Запись.Закрыть();
	
	Возврат Файл;
КонецФункции

Процедура ТестДолженПроверитьЧтоФайлБезБОМСчитываетсяКакANSI_Windows() Экспорт
	
	Файл = ЗаписатьФайлБезБОМ(КодировкаТекста.ANSI);
	
	Чтение = Новый ЧтениеТекста(Файл);
	Текст = Чтение.Прочитать();
	Чтение.Закрыть();
	
	юТест.ПроверитьРавенство("Привет", Текст);
	
КонецПроцедуры

Процедура ТестДолженПроверитьЧтоФайлБезБОМСчитываетсяКакUTF_Linux() Экспорт

	Файл = ЗаписатьФайлБезБОМ(КодировкаТекста.UTF8NoBOM);
	
	Чтение = Новый ЧтениеТекста(Файл);
	Текст = Чтение.Прочитать();
	Чтение.Закрыть();
	
	юТест.ПроверитьРавенство("Привет", Текст);

КонецПроцедуры
